#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
#include "download.h"
#include "menu.h"

int main(int argc, char const *argv[])
{
    // 设置tftp默认端口号
    int server_port = 69;
    // 保证参数合法
    if (argc != 2 && argc != 3)
    {
        printf("Usage:%s IPAddress [port]\n", argv[0]);
        exit(EXIT_FAILURE);
    }
    // 修改为客户指定端口
    if (argc == 3)
    {
        server_port = atoi(argv[2]);
    }
    menu();
    printf(":");
    // 接收用户是否想设置选项
    char isset[16] = "";
    scanf("%s", isset);
    getchar();

    // 创建套接字
    int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    // 初始化地址结构体（服务器地址）
    struct sockaddr_in server_addr;
    memset(&server_addr, 0, sizeof(server_addr));
    server_addr.sin_family = AF_INET;
    server_addr.sin_port = htons(server_port);
    inet_pton(AF_INET, argv[1], &server_addr.sin_addr.s_addr);

    download(sockfd, &server_addr, isset);

    close(sockfd);
    return 0;
}
